# 列表操作
# 添加元素
def add():
    # append()方法：添加元素到列表的末尾
    my_list_1 = [1, 2, 3]
    print('my_list_1原始列表为：',my_list_1)
    my_list_1.append(4)
    print('append()方法添加元素后的列表为：',my_list_1) # [1, 2, 3, 4]
    # extend()方法：用于将另一个列表的元素添加到列表的末尾
    my_list_2 = [1, 2, 3]
    print('my_list_2原始列表为：', my_list_2)
    other_list = [5, 6, 7]
    my_list_2.extend(other_list)
    print('extend()方法添加元素后的列表为：',my_list_2)
    # insert()方法：在指定位置添加元素
    my_list_3 = [1, 2, 3]
    print('my_list_3原始列表为：', my_list_3)
    my_list_3.insert(1,'apple')
    print('insert()方法添加元素后的列表为：',my_list_3)
# 删除元素-remove
def delete_remove():
    try:
        my_list_1 = [1, 2, 'apple', 3, 'apple']
        print('my_list_1原始列表为：',my_list_1)
        # remove()方法：删除列表中指定的元素
        my_list_1.remove('apple')
        print('my_list_1中remove()方法删除元素后的列表为：',my_list_1) # remove()方法删除元素后的列表为： [1, 2, 3, 'apple']
        # my_list_2 = [1, 2, 'blue', 3, 'blue']
        # # 删除一个不存在的元素，捕捉异常
        # my_list_2.remove('apple')
        # print('my_list_2中remove()方法删除元素后的列表为：',my_list_2)
        print('---------------------------')
    # except ValueError:  #精准匹配异常
    except  Exception as e: #模糊匹配异常，一般都用模糊匹配异常
        print('列表中不存在该元素！', e)
    print('程序运行结束-delete_remove！')
# 删除元素-pop
def delete_pop():
    try:
        # pop()方法：删除列表中指定位置的元素，并返回该元素;若不指定位置，则删除列表末尾的元素
        my_list_1 = [1, 2, 'blue', 3, 'blue']
        print('my_list_1原始列表为：',my_list_1)
        res = my_list_1.pop(2)
        print('pop(2)删除的元素为：',  res, type( res))
        print('my_list_1中pop()方法删除元素后的列表为：',my_list_1)
        # my_list_2 = [1, 2, 'blue', 3, 'blue']
        # # 删除一个不存在的索引，捕捉异常
        # my_list_2.pop(10)
        # print(my_list_2)
        my_list_3 = [1, 2, 'blue', 3, 'blue']
        print('my_list_3原始列表为：', my_list_3)
        # 删除列表末尾的元素
        my_list_3.pop()
        print('my_list_3中pop()方法删除元素后的列表为：',my_list_3)
        print('---------------------------')
    # except ValueError:  #精准匹配异常
    except  Exception as e: #模糊匹配异常，一般都用模糊匹配异常
        print('列表中不存在该元素！', e)
    print('程序运行结束-delete_pop！')
# 删除元素-del
def delete_del():
    try:
        my_list_1 = [1, 2, 'blue', 3, 'blue']
        print('my_list_1原始列表为：',my_list_1)
        # 删除索引为2的元素
        del my_list_1[2]
        print('my_list_1中del()方法删除索引为2的元素后列表为：',my_list_1)
        my_list_2 = [1, 2, 'blue', 3, 'orange']
        print('my_list_2原始列表为：', my_list_2)
        # 使用切片删除第2-4个元素
        del my_list_2[1:4]
        print('my_list_2中del()方法删除第2-4个元素后列表为：',my_list_2)
        # 删除索引不存在的元素
        my_list_3 = [1, 2, 'blue', 3, 'orange']
        del my_list_3[6]
        print('my_list_3中del()方法删除索引为6的元素后列表为：',my_list_3)
    except Exception as e: #模糊匹配异常，一般都用模糊匹配异常
        print('列表中不存在该元素！', e)
        print('上面的程序有异常，但是程序处理了，所以代码不会中断')
    print('程序运行结束-delete_del！')

# 修改元素-直接通过索引修改列表中的元素
def modify():
    my_list_1 = [1, 2, 'blue', 3, 'orange']
    print('my_list_1原始列表为：',my_list_1)
    my_list_1[2] = 'blue->skyblue'
    print('my_list_1中修改索引为2的元素后列表为：',my_list_1)
    print('程序运行结束-modify！')

if __name__ == '__main__':
    # 调用添加元素的函数
    # add()
    # 调用删除元素的函数
    # delete_remove()
    # delete_pop()
    # delete_del()
    # 调用修改元素的函数
    modify()
